# coding=utf-8

from pymongo import MongoClient
from bs4 import BeautifulSoup
import requests
import datetime
import pprint
import json
import time
import re

server_client = MongoClient('127.0.0.1', 27017)

server_db = server_client['knx_posts_db']
offical_posts_coll = server_db['offical_posts_coll']

# class POST():
#     def __init__(self):
#         self.company = '北京搜狗科技发展有限公司'
#         self.url = "http://cts.dajie.com/cts/job/list"
#         self.params = {
#             'ajax': '1',
#             'corpId': '9104102800000000607',
#             'pageNo': 1,
#             'orgCode': '',
#             'type': '',
#             'workPlace': '',
#             '_CSRFToken': '',
#         }
#         self.data = {
#
#         }
#         self.headers = {
#
#         }
#         self.scrapy()
#
#     def scrapy(self):
#         r = requests.get(self.url, params = self.params, )
#         j = r.json()
#         print(j)
#
#         for i in range(1, j['pageSize']):
#             self.params['pageNo'] = i
#             r = requests.get(self.url, params = self.params, )
#             j = r.json()
#             for job in j['jobs']:
#                 description = job['jobDesc']
#                 name = job['jobTitle']
#                 count = ''
#                 location = job['workPlace']
#
#                 url = 'http://cts.dajie.com/cts/wish/applyPage?jobId=9005100100000009378&isCanTalent=&defaultOrg='
#
#                 edu = ''
#                 date = job['createTime']
#                 funType = job['type']
#                 item = {
#                     "url": url,  # jd详情页的地址
#                     'edu': edu,  # 最低学历
#                     'exp': [],  # 所需工作经验，比如[3, 5]表示3到5年, [3]表示3年，[]表示无经验要求
#                     'name': name,  # 职位名称 *
#                     'date': date,  # 职位发布日期，字符串形式即可，后期统一转换
#                     'lang': '',  # 对语言的要求
#                     'place': '',  # 办公具体地址
#                     'major': '',  # 专业要求
#                     'count': count,  # 招聘数量
#                     'salary': [],  # 薪资待遇，[5000, 8000]表示月薪5到8千，[4000]表示4千，[]表示没有写明
#                     'toSchool': True,  # 是否是面向校园招聘，本次官网抓取一律都是校园招聘，所以此处都是True
#                     'welfare': [],  # 福利待遇，比如五险一金、十三薪之类的，保存成数组
#                     'funType': funType,  # 职能类型，比如证券经纪人是证券 / 期货 / 外汇经纪人
#                     'company': self.company,  # 企业名称
#                     'location': location,  # 所在城市
#                     'industry': 'IT互联科技行业',  # 企业所在行业
#                     'keywords': [],  # 此岗位的搜索关键字
#                     'platform': 'offical',  # 针对官网抓取时此处一律保存为offical
#                     'searchKeyword': '',  # 搜索的关键字，由于是官网抓取所以此处一律为空字符串
#                     'description': description,  # 职位的详细描述，包括职责、要求之类的
#                     'subIndustry': '',  # 一律为空字符串
#                     'stime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 抓取时间
#                 }
#                 print(item['company'], item['name'])
#
#                 if not offical_posts_coll.find_one({'name': item['name'], 'company': item['company'], 'location': item['location']}):
#                     offical_posts_coll.insert_one(item)
#
#
# POST()

for jobCode in ['JOB002', 'JOB001', 'JOB003', 'JOB004']:
    r = requests.get('http://campus.sogou.com/sogou/2019/resume/getDirs?jobCode=' + jobCode).json()
    for i in r['dirs']:
        jobs = r = requests.get('http://campus.sogou.com/sogou/2019/resume/getJobInfos?jobCode=' + jobCode + '&categoryId=' + str(i['key2'])).json()['jobs']
        for j in jobs:
            item = {
                "url": '',
                'edu': '',
                'exp': [],
                'name': j['jobTitle'],
                'date': '',
                'lang': '',
                'place': '',
                'major': '',
                'count': '',
                'salary': [],
                'toSchool': True,
                'welfare': [],
                'funType': '',
                'company': '北京搜狗科技发展有限公司',
                'location': '',
                'industry': 'IT互联科技行业',
                'keywords': [],
                'platform': 'offical',
                'searchKeyword': '',
                'description': j['jobDesc'],
                'subIndustry': '',
                'stime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            }

            if not offical_posts_coll.find_one({'company': item['company'], 'name': item['name']}):
                offical_posts_coll.insert_one(item)
                print('北京搜狗科技发展有限公司', item['name'])
